import requests
import pandas as pd

# 列出本地模型
# response = requests.get("http://localhost:11434/api/tags")
# print("可用模型:", response.json()["models"])

CSV_PATH = "summary.csv"
OUTPUT_CSV = "output_result_qwen2_5.csv"

# 简单对话生成
def generate_response(text, model="qwen2.5:14b"):
  url = "http://localhost:11434/api/generate"
  prompt = build_prompt(text)
  payload = {
    "model": model,
    "prompt": prompt,
    "stream": False  # 设置为 True 时需处理流式响应
  }

  try:
    response = requests.post(url, json=payload)
    response.raise_for_status()
    return response.json()["response"]
  except requests.exceptions.RequestException as e:
    return f"请求错误: {str(e)}"

# 使用示例
# model ="deepseek-r1:14b"
# prompt = "营销行外资金，暂无到期，前期邀约过客户参观泰康养老社区，继续跟进保险，目前还需要跟家里小孩商量，觉得交费太高，手上所有资金加一起才能买的起，再考虑考虑，判断该客户有无购买倾向"
# print(generate_response(prompt,model))

def build_prompt(text):
  return f"{text},根据前面的文字，判断该客户有无购买倾向,仅输出0（无意向）或1（有意向），不要任何解释"


def main():
  # 读取数据
  df = pd.read_csv(CSV_PATH)
  df = df.dropna(axis=0)

  # df = df.head(30)
  # 执行情感分析
  df['sentiment'] = df['summary'].apply(generate_response)
  print(df.head(10))
  # 处理异常结果
  df['sentiment'] = df['sentiment'].fillna(-1).astype(int)

  # 保存结果
  df.to_csv(OUTPUT_CSV, index=False)
  print(f"分析完成，结果已保存至 {OUTPUT_CSV}")


if __name__ == "__main__":
  main()